package com.itheima.mapper;

import com.itheima.pojo.Follow;
import com.itheima.vo.LikeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author wangjiexin
 */
@Mapper
public interface FollowMapper {

        boolean addOne(Follow follow);

        Follow selectByUserIdAndFollowId(@Param("userId") String userId,@Param("followId") String followId);

        boolean delByUserIdAndFollowId(@Param("userId") String userId,@Param("followId") String followId);

        /**
         * 查询互相喜欢的
         * @param name
         * @param page
         * @param pageSize
         * @return
         */
        List<LikeVo> selectByType1(@Param("id") String id,
                                   @Param("name") String name,
                                   @Param("page") Integer page,
                                   @Param("pageSize") Integer pageSize);

        /**
         * 查询喜欢的
         * @param name
         * @param page
         * @param pageSize
         * @return
         */
        List<LikeVo> selectByType2(@Param("id") String id,
                                   @Param("name") String name,
                                   @Param("page") Integer page,
                                   @Param("pageSize") Integer pageSize);

        /**
         * 查询粉丝
         * @param name
         * @param page
         * @param pageSize
         * @return
         */
        List<LikeVo> selectByType3(@Param("id") String id,
                                   @Param("name") String name,
                                   @Param("page") Integer page,
                                   @Param("pageSize") Integer pageSize);

        /**
         * 统计互相喜欢的个数
         * @param id
         * @param name
         * @return
         */
        Long selectCountByType1(@Param("id") String id,@Param("name") String name);

        /**
         * 统计喜欢的个数
         * @param id
         * @param name
         * @return
         */
        Long selectCountByType2(@Param("id") String id,@Param("name") String name);

        /**
         * 统计粉丝的个数
         * @param id
         * @param name
         * @return
         */
        Long selectCountByType3(@Param("id") String id,@Param("name") String name);
}
